/**
 *
 */
package org.tangram.component;

import java.net.URL;
import java.util.List;

/**
 * 构件接口
 * 
 * @author han_feng
 * 
 */
public interface Component {

	/**
	 * 获取构件编号
	 * 
	 * @return
	 */
	public String getId();

	/**
	 * 获取所属组织编号
	 * 
	 * @return
	 */
	public String getGroupId();

	/**
	 * 获取构件版本
	 * 
	 * @return
	 */
	public String getVersion();

	/**
	 * 获取构件展示名称
	 */
	public String getName();

	/**
	 * 获取构件描述
	 * 
	 * @return
	 */
	public String getDescription();

	/**
	 * 获取依赖的构件
	 * 
	 * @return
	 */
	public List<Component> getDependencies();

	/**
	 * 获取构件状态
	 * 
	 * @return
	 */
	public ComponentState getState();

	/**
	 * 获取描述文件URL
	 * 
	 * @return
	 */
	public URL getDescriptorURL();

}
